package com.xgk.boot.module.core.dal.entity.payment;

import com.baomidou.mybatisplus.annotation.*;
import com.xgk.boot.framework.mybatis.core.dataobject.BaseDO;
import com.xgk.boot.module.core.enums.biz.ApprovalTypeEnum;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 帐户收款记录实体类
 * 对应数据库表：customer_payment_records
 */
@Data
@TableName("payment_records")
public class PaymentRecordsDO extends BaseDO {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;
    
    @TableField("customer_id")
    private Long customerId;

    @TableField("customer_code")
    private String customerCode;
    /**
     * 结算对象代码
     */
    @TableField("payer_code")
    private String payerCode;

    /**
     * 结算对象类型：cm-客户、su-供应商、sp-服务商
     */
    @TableField("so_type")
    private String soType;


    /**
     * 支付方式：如现金、支付宝、微信、银行转账
     */
    @TableField("pm_code")
    private String pmCode;

    /**
     * 收付类型：1-收款;2-付款
     */
    @TableField("apr_type")
    private Integer type;

    /**
     * 状态：0-作废;1-待确认;2-已审核
     * {@link ApprovalTypeEnum 说明}
     */
    @TableField("apr_status")
    private Integer status;

    /**
     * 付款方账户
     */
    @TableField("payer_account")
    private String payerAccount;

    /**
     * 付款方账号
     */
    @TableField("payer_account_Name")
    private String payerAccountName;



    /**
     * 交易号
     */
    @TableField("apr_transaction_no")
    private String transactionNo;

    /**
     * 系统流水号
     */
    @TableField("apr_code")
    private String code;

    /**
     * 自定义编码
     */
    @TableField("apr_custom_numbering")
    private String customNumbering;

    /**
     * 金额(结算金额)
     */
    @TableField("apr_amount")
    private BigDecimal amount;

    /**
     * 充值金额
     */
    @TableField("apr_org_amount")
    private BigDecimal orgAmount;
    @TableField("apr_upper_amount")
    private String upperAmount;

    /**
     * 到账金额
     */
    @TableField("apr_real_amount")
    private BigDecimal realAmount;

    /**
     * 原币种
     */
    @TableField("apr_currency_code")
    private String currencyCode;

    /**
     * 原币种当时汇率
     */
    @TableField("apr_currency_rate")
    private BigDecimal currencyRate;

    /**
     * 备注
     */
    @TableField("apr_note")
    private String note;

    /**
     * 操作人备注
     */
    @TableField("apr_desc")
    private String operatorDesc;

    /**
     * 建立类型：0-人工;1-系统
     */
    @TableField("apr_create_type")
    private Integer createType;

    /**
     * 文件附件地址(Json格式)
     */
    @TableField("apr_attachment")
    private String attachment;

    /**
     * 确认日期
     */
    @TableField("apr_confirm_time")
    private Date confirmTime;

    /**
     * 确认人/审核人ID
     */
    @TableField("apr_confirm_id")
    private Long confirmId;

    /**
     * 交款日期
     */
    @TableField("apr_transaction_time")
    private Date transactionTime;



    @TableField("pay_bank")
    private String payBank;

}
